package hot;

public class Num31 {
    public void nextPermutation(int[] nums) {
        int i = nums.length - 2;
        while(i >= 0 && nums[i] >= nums[i + 1]) {
            i--;
        }
        int j = nums.length - 1;
        if(i >= 0) {
            while(j >= 0 && nums[i] >= nums[j]) {
                j--;
            }
            int temp = nums[i];
            nums[i] = nums[j];
            nums[j] = temp;
        }
        for(int k = i + 1; k <(i + 1 + nums.length) / 2; k++) {
            int sum = nums[k];
            nums[k] = nums[nums.length + i - k];
            nums[nums.length + i - k] = sum;
        }
    }
}
